<!DOCTYPE html>
<html lang="en">
    <head>
        <title>js面试</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
    </head>
    <body>
    <h3>Number背后的转换规则</h3>
    <div>
        1.调用对象自身的valueOf()方法. 如果返回原始类型的值,则直接对该值使用Number函数,不再进行后续步骤.
        2. 如果valueOf()方法返回的还是对象,则改为调用对象自身的toString()方法.如果toString()方法返回原始类型的值,则对该值使用Number函数,不再进行后续步骤.
        3.如果toString方法返回的是对象,就报错.
        <h4>实例:</h4>
        <pre>
            var obj = {x : 1};
            Number(obj)  // NaN
            if(typeof obj.valueOf() === 'object') {
                Number (obj.toString());
            }
            else {
                Number(obj.valueOf());
            }
        </pre>
    </div>
     
    </body>
</html>
<script>
    var a = 100 ;
    var b = a ;
    a = 200 ;
    console.log(b) ;  
    console.log(a);


    var c = {age:20};
    var d = c ;
    d.age = 21
    console.log(c.age);


    var str = false + 1 ;
    console.log(str);

    let e = 100 ;
    console.log(!window.adc);

     function Foo(name,age){
         this.name = name ;
         this.age = age ;
         this.class = 'class - 1';
     }

     const f = new Foo('zhangsan', 20)
     console.log(f);

    document.write('数字 字符串 布尔值 原始类型 </br>')
    document.write("原始类型的值主要是字符串 布尔值 undefined null,它们都能被Number转成述职或者 NaN </br>")

    let arr = ["gooole", "microsoft", "oracle", "阿里", "freewheel", "IBM"]
    arr.join(',')
</script>
